package com.xci.core.helper;

import cn.hutool.core.util.StrUtil;
import org.springframework.util.ObjectUtils;

/**
 * @author 吕艳阳
 */
public class ObjectHelper {
    /**
     * 如果对象是字符串是否为空串空的定义如下:<br>
     * 1、为null <br>
     * 2、为""<br>
     *
     * @param obj 对象
     * @return 如果为字符串是否为空串
     * @since 3.3.0
     */
    public static boolean isEmpty(Object obj) {
        return ObjectUtils.isEmpty(obj);
    }

    /**
     * 字符串是否为非空白 空白的定义如下： <br>
     * 1、不为null <br>
     * 2、不为""<br>
     *
     * @param obj 被检测的字符串对象
     * @return 是否为非空
     */
    public static boolean isNotEmpty(Object obj) {
        return !ObjectUtils.isEmpty(obj);
    }

    /**
     * 如果对象是字符串是否为空白，空白的定义如下： <br>
     * 1、为null <br>
     * 2、为不可见字符（如空格）<br>
     * 3、""<br>
     *
     * @param obj 字符串对象
     * @return 如果为字符串是否为空串
     * @since 3.3.0
     */
    public static boolean isBlank(Object obj) {
        if (null == obj) {
            return true;
        } else if (obj instanceof CharSequence) {
            return StrUtil.isBlank((CharSequence) obj);
        }
        return false;
    }

    /**
     * 字符串是否为非空白 空白的定义如下： <br>
     * 1、不为null <br>
     * 2、不为不可见字符（如空格）<br>
     * 3、不为""<br>
     *
     * @param obj 被检测的字符串对象
     * @return 是否为非空
     */
    public static boolean isNotBlank(Object obj) {
        return !isBlank(obj);
    }
}
